package org.archive.wayback.replay.charset;
import java.util.Map;
import java.util.Map.Entry;
import org.archive.wayback.core.Resource;
/**
* {@link EncodingSniffer} obtaining character encoding from
* {@code Content-Type} HTTP header.
* <p>Step 4 of WHAT-NG <em>character encoding sniffing</em> prescription.
*/
public class ContentTypeHeaderSniffer extends BaseEncodingSniffer {
@Override
public String sniff(Resource resource) {
Map<String, String> httpHeaders = resource.getHttpHeaders();
for (Entry<String, String> e : httpHeaders.entrySet()) {
String headerKey = e.getKey();
if (headerKey.equalsIgnoreCase(HTTP_CONTENT_TYPE_HEADER)) {
String ctype = e.getValue();
String charsetName = contentTypeToCharset(ctype);
return charsetName;
}
}
return null;
}
}